import store from '@/store';
import { isWechat } from '@/config/h5Utils';
import { setCookie,getCookie,removeCookie } from '@/plugins/cookie';
import { judgeLogin } from '@/config/login';
import { getServiceUserInfo } from '@/components/module/f-login/f-login.js';
import { isLogin } from '../../plugins/auth';


export const state = {
    //用户数据
    userInfo: {},
	// 鉴权 token
	authToken: {refresh: '',token: '',openid: ''},
};
export const mutations = {
    //储存用户信息
    setUserInfo(state, data) {
        if (data) {
            state.userInfo =  Object.assign({}, state.userInfo,data);
            // #ifdef H5
			// if(isWechat()){
				// 微信浏览器使用cookie存储---ios微信浏览器使用此方式可以拿到cookie
				var val = encodeURIComponent(JSON.stringify(state.userInfo)) //这里对保存的数据进行编码
				setCookie('userInfo',val,15)
			// }else{
			// 	window.sessionStorage.setItem('userInfo', JSON.stringify(state.userInfo));
			// }
            // #endif
            // #ifndef H5
            uni.setStorageSync('userInfo', state.userInfo);
            // #endif
        }
    },
    // 设置鉴权 token
    setAuthToken(state, tokens) {
        state.authToken = tokens; // 设置 token 对象
        // #ifdef H5
        // if(isWechat()){
            setCookie('authToken', JSON.stringify(tokens), 15); // 将 token 对象存储在 cookie 中
        // } else {
        //     window.sessionStorage.setItem('authToken', JSON.stringify(tokens));
        // }
        // #endif
        // #ifndef H5
        uni.setStorageSync('authToken', tokens); // 在非 H5 环境中使用 uni.storage
        // #endif
    },
    // 清除鉴权 token
    clearAuthToken(state) {
        state.authToken = {}; // 清空 token 对象
        // #ifdef H5
        // if(isWechat()){
            removeCookie('authToken'); // 从 cookie 中移除 token
        // } else {
        //     window.sessionStorage.removeItem('authToken');
        // }
        // #endif
        // #ifndef H5
        uni.removeStorageSync('authToken'); // 在非 H5 环境中移除 token
        // #endif
    },
    // 退出APP
    emptyUserInfo(state) {
        state.userInfo = {};
        // #ifdef H5
        // if(isWechat()){
        	removeCookie('userInfo')
			removeCookie('authToken'); // 从 cookie 中移除 token
        // }else{
        // 	window.sessionStorage.removeItem("userInfo");
        // }
        // #endif
        // #ifndef H5
        uni.removeStorageSync("userInfo");
		uni.removeStorageSync('authToken'); // 在非 H5 环境中移除 token
        // #endif
    },
};
export const actions = {
    async fetchUserInfo({ commit }) {
        try {
			// 如果已经登录
			if(isLogin()){
				getServiceUserInfo('',userRes=>{
					let users = {
					    ...userRes,
					    token:true,//token用于判断是否登录
					}
					store.commit('setUserInfo',users)
				});
			}
        } catch (error) {
            console.error('Failed to fetch user info:', error);
        }
    },
};
